package com.ashlikun.keeplive.config

import android.content.Intent
import androidx.core.app.NotificationCompat
import com.ashlikun.keeplive.KeepLive.NOTIFY_TYPE

/**
 * 作者　　: 李坤
 * 创建时间: 2024/10/9　14:59
 * 邮箱　　：496546144@qq.com
 *
 * 功能介绍：配置类
 */
data class KeepLiveConfig(

    //创建前提通知时候的回调，方便外部进行特殊设置
    var createNotificationCall: ((NotificationCompat.Builder) -> Unit)? = null,
    //是否开启守护进程 双进程保活
    //如果开启，那么会初始化多次Application，请注意调用isMainProcess 过滤掉不必要的初始化
    var remoteEnable: Boolean = false,

    /**
     * 每次服务创建是否检测start状态
     * 如果不是start，就停止服务
     */
    var isCheckStart: Boolean = true,

    /**
     * 是否启动定时器服务
     * 这里如果用户开启APP后台运行，那么APP会永远关不了(没有页面，但是有服务在运行)
     */
    var jobServiceEnable: Boolean = false,

    /**
     * AlarmManager 间隔多久检查
     * -1：不使用AlarmManager
     */
    var alarmManagerInterval: Long = -1L,

    /**
     * 是否打印调试信息
     */
    var isDebug: Boolean = false,
    /**
     * 是否启用无声音乐  * 如不设置，则默认启用
     */
    var useSilenceMusic: Boolean = false,
    /**
     * 音乐是否重复播放流氓模式  相对耗电，但可造就不死之身
     */
    var musicReplay: Boolean = false,
    /**
     * 音乐 间隔多久播放下一次
     */
    var musicDelay: Long = 5000L,
) {

    /**
     * 通知栏点击的回调
     * 这个放在Application里面，才能被回调
     */
    var notifyClickIntent: Intent? = null
        internal set(value) {
            value?.action = NOTIFY_TYPE
            field = value
        }

    var foregroundNotification: ForegroundNotification? = null
}